﻿/*
神奇的fans 
Time Limit:1000MS  Memory Limit:32768K


Description:
传说fans是一个数学天才。在他五岁那年，从一堆数字卡片中选出了4张卡片：5，7，6，8。
这4个数字有什么神秘之处呢？如果把这4张卡片自左往右的排成：5，6，7，8。
你就会发现：原来这4个数字构成了等差数列！当年fans选出了n组卡片，据说都能够构成等差数列。
但是事实真的是这样吗？fans真的有这么神奇吗？
n组数据就是fans选出的n组卡片，请你判断每一组卡片是否能构成等差数列，
如果能够构成等差数列，输出“yes”，否则输出“no”。
文件中第一个数为数据的组数n，表示后面有n行，
每行中的第一个数为该组数据的元素个数m（1≤m≤100），其后是m个正整数（不会超出int的表示范围）。

Sample Input:
2
4 5 7 6 8
8 1 7 3 2 8 12 78 3
Sample Output:
yes
no
*/
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
	unsigned n;
	cin >> n;
	while (n--)
	{
		unsigned m;
		cin >> m;

		vector<unsigned> nums;
		nums.reserve(m + 1);
		for (unsigned i = 0; i < m; ++i)
		{
			unsigned num;
			cin >> num;
			nums.push_back(num);
		}
		if (m <= 2)
			cout << "yes" << endl;
		else
		{
			sort(nums.begin(), nums.end());

			unsigned delta=nums[1]-nums[0];	
			bool equalDiff=true;
			for (vector<unsigned>::size_type i=1, length=nums.size()-1; i<length && equalDiff; ++i)
				if(nums[i+1]!=nums[i]+delta)
					equalDiff=false;
			if(equalDiff)
				cout << "yes" << endl;
			else
				cout << "no" << endl;
		}
	}
	return EXIT_SUCCESS;
}
